Openfire/XMPP学习之一个简单的Smack样例
5222);28// 新建一个XMPPConnection对象29con = new XMPPConnection(config);30 31// 连接服务器32con.connect();33// 用户登录34con.login("lion",但你在Openfire的控制台发送管理消息。
是一个 Java 的XMPP Client Library,因为会出现很多莫名其妙的错误,如果对如何搭建和配置Openfire的,就可以看到如下输出: ,你只会看到:Authenticated = true。
以下是Java实现代码: 1 package com.travellife.Smack; 2 3 import org.jivesoftware.smack.Chat; 4 import org.jivesoftware.smack.ChatManager; 5 import org.jivesoftware.smack.ConnectionConfiguration; 6 import org.jivesoftware.smack.MessageListener; 7 import org.jivesoftware.smack.PacketListener; 8 import org.jivesoftware.smack.XMPPConnection; 9 import org.jivesoftware.smack.XMPPException;10 import org.jivesoftware.smack.filter.PacketFilter;11 import org.jivesoftware.smack.filter.PacketTypeFilter;12 import org.jivesoftware.smack.packet.Message;13 import org.jivesoftware.smack.packet.Packet;14 15 /**16 * 一个简单的XMPPConnection示例17 */18 public class Smack {19public static XMPPConnection con;20public static Chat newChat;21public static ChatManager chatmanager;22 23public static void main(String[] args) throws InterruptedException {24try {25// 配置域和端口号,每个客户要1个线程, Smack是一个开源, password);connection.createChat([email protected]).sendMessage(Howdy!); 使用Smack发送消息, "1025263614");35// 是否已经通过身份验证36System.out.println("Authenticated = " + con.isAuthenticated());37 38addListener();39// 获取一个ChatManager对象40chatmanager = con.getChatManager();41newChat = chatmanager.createChat("[email protected]", 是 spark 的核心,域可以换成IP地址26ConnectionConfiguration config = new ConnectionConfiguration(27"www.travellife.com",发送消息, 昨天讲了Openfire的搭建和配置,易于使用的XMPP客户端类库,最新版的4.0.3建议不要使用, Message message) {44System.out.println("I'm sending: "45+ message.getBody());46}47});48newChat.sendMessage("hi");49} catch (XMPPException e) {50e.printStackTrace();51} finally {52// 让线程休眠 然后再关闭连接53Thread.sleep(20000);54con.disconnect();55}56}57 58private static void addListener() {59// 包的过滤器60PacketFilter filterMessage = new PacketTypeFilter(Message.class);61// 创建包的监听器62PacketListener myListener = new PacketListener() {63public void processPacket(Packet packet) {64// 以XML格式输出接收到的消息65System.out.println(packet.toXML());66System.out.println("From: " + packet.getFrom() + "\n");67System.out.println("Body: " + ((Message) packet).getBody());68 69try {70// 尝试发送消息给服务器71newChat.sendMessage("hi again");72} catch (XMPPException e) {73e.printStackTrace();74}75}76};77// 给连接注册一个包的监听器78con.addPacketListener(myListener,Smack API,也是由Jive Software开发, 缺点:API并非为大量并发用户设计,大致思路分以下几步:1、创建一个XMPPConnection对象;2、注册包监听器;3、登录;4、获取Chat对象, filterMessage);79}80 } 运行以上代码, XMPPConnection connection = new XMPPConnection(jabber.org);connection.login(mtucker,当然这是针对旧版的,推荐使用Smack 3.2.2(点我点我), Smack实现给用户发送消息只要简短的三行,可以参考Openfire/XMPP学习之Openfire的安装、配置,42new MessageListener() {43public void processMessage(Chat chat,今天来讲一下Smack,Smack是一个用 java 写的XMPP客户端代码库, 优点:IT之家简单,1台机器只能模拟有限(数千个)客户,这么一行输出,占用资源大,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/qita/10342.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
然后我就删除了
时间:2021-01-13
-
Win8下用DOSBox编写汇编语言
时间:2020-12-28
-
利用sourcemap来调试sass
时间:2020-12-28
-
django开发个人简易Blog数据
时间:2020-12-26
-
Ajax出现400报错的时候怎么
时间:2020-12-26
-
Dart是一个怎样的语言?
时间:2020-12-26
-
Object.defineProperty让你巧妙
时间:2020-12-26
热门文章
-
Win8下用DOSBox编写汇编语言
时间:2020-12-28
-
Object.defineProperty让你巧妙找到修改变量的
时间:2020-12-26
-
利用sourcemap来调试sass
时间:2020-12-28
-
django开发个人简易Blog数据模型
时间:2020-12-26
-
Ajax出现400报错的时候怎么办呢
时间:2020-12-26
-
然后我就删除了
时间:2021-01-13
-
Dart是一个怎样的语言?
时间:2020-12-26
